package com.app.sgd.business.dao;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;

import javax.sql.DataSource;

import org.apache.log4j.Logger;
import org.apache.struts.util.LabelValueBean;

import com.app.sgd.model.bean.ClasificacionDocumentos;
import com.app.sgd.model.bean.Departamento;
import com.app.sgd.model.bean.Distrito;
import com.app.sgd.model.bean.Empleado;
import com.app.sgd.model.bean.Pais;
import com.app.sgd.model.bean.Provincia;
import com.app.sgd.model.bean.Usuario;
import com.app.sgd.plugin.JNDIConnector;
import com.app.sgd.util.Constants;

public class SQLVariablesSesionDAO {
	private static Logger logger = Logger.getLogger(SQLDocumentoDAO.class);
	
	DataSource ds = null;
	JNDIConnector cn = new JNDIConnector();
	
	public ArrayList getTipoMovimiento(int val) throws Exception {
		ArrayList <LabelValueBean>lstAcciones = new ArrayList <LabelValueBean>();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT CODI_TMOV_TTM, DESC_TMOV_TTM " +
	    			      "  FROM TIPO_MOVIMIENTO";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            if(val==1)
            	lstAcciones.add(new LabelValueBean(Constants.VALOR_DEFAULT_TODOS,Constants.VALOR_DEFAULT_CERO));
            while(rs.next()){
            	lstAcciones.add(new LabelValueBean(rs.getString("DESC_TMOV_TTM"),rs.getString("CODI_TMOV_TTM")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getTipoMovimiento: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstAcciones;
	}
	
	public ArrayList getTipoMovimientoRecepcion(int val) throws Exception {
		ArrayList <LabelValueBean>lstAcciones = new ArrayList <LabelValueBean>();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT CODI_TMOV_TTM, DESC_TMOV_TTM " +
	    			      "  FROM TIPO_MOVIMIENTO" +
	    			      " WHERE CODI_TMOV_TTM IN (1,3)";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            if(val==1)
            	lstAcciones.add(new LabelValueBean(Constants.VALOR_DEFAULT_TODOS,Constants.VALOR_DEFAULT_CERO));
            while(rs.next()){
            	lstAcciones.add(new LabelValueBean(rs.getString("DESC_TMOV_TTM"),rs.getString("CODI_TMOV_TTM")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getTipoMovimiento: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstAcciones;
	}
	
	public ArrayList getEstado() throws Exception {
		ArrayList lstEstado = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT CODI_EDOC_TED, DESC_EDOC_TES " +
	    			      "  FROM ESTADO";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            while(rs.next()){
            	lstEstado.add(new LabelValueBean(rs.getString("DESC_EDOC_TES"),rs.getString("CODI_EDOC_TED")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getEstado: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstEstado;
	}
	
	public ArrayList getPrioridad() throws Exception {
		ArrayList lstPrioridad = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT CODI_PRIO_TP, DESC_PRIO_TP " +
	    			      "  FROM PRIORIDAD";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            while(rs.next()){
            	lstPrioridad.add(new LabelValueBean(rs.getString("DESC_PRIO_TP"),rs.getString("CODI_PRIO_TP")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getPrioridad: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstPrioridad;
	}
	
	public ArrayList getFormaEnvio() throws Exception {
		ArrayList lstFormaEnvio = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT CODI_FENV_TFE, DESC_FENV_TFE " +
	    			      "  FROM FORMA_ENVIO";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            while(rs.next()){
            	lstFormaEnvio.add(new LabelValueBean(rs.getString("DESC_FENV_TFE"),rs.getString("CODI_FENV_TFE")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getFormaEnvio: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstFormaEnvio;
	}
	
	public ArrayList getEstadoDocumento() throws Exception {
		ArrayList lstEstadoDocumento = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT CODI_EDOC_TED, DESC_EDOC_TES " +
	    			      "  FROM ESTADO " +
	    			      " WHERE TIPO_ESTA_TES = 'D'" +
	    			      "   AND FLG_VAL_TES <> 'N' " +
	    			      " ORDER BY NRO_ORD_TES ";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            lstEstadoDocumento.add(new LabelValueBean("TODO",Constants.ESTADO_TODOS));
            while(rs.next()){
            	lstEstadoDocumento.add(new LabelValueBean(rs.getString("DESC_EDOC_TES"),rs.getString("CODI_EDOC_TED")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getEstadoDocumento: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstEstadoDocumento;
	}
	
	public ArrayList getEstadoSeguimiento() throws Exception {
		ArrayList lstEstadoSeguimiento = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT CODI_EDOC_TED, DESC_EDOC_TES " +
	    			      "  FROM ESTADO " +
	    			      " WHERE TIPO_ESTA_TES = 'S'";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            lstEstadoSeguimiento.add(new LabelValueBean("TODO",Constants.ESTADO_TODOS));
            while(rs.next()){
            	lstEstadoSeguimiento.add(new LabelValueBean(rs.getString("DESC_EDOC_TES"),rs.getString("CODI_EDOC_TED")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getEstadoSeguimiento: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstEstadoSeguimiento;
	}
	
	public ArrayList getEstadoAccion() throws Exception {
		ArrayList lstEstadoAccion = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT CODI_EDOC_TED, DESC_EDOC_TES " +
	    			      "  FROM ESTADO " +
	    			      " WHERE TIPO_ESTA_TES = 'A'";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            while(rs.next()){
            	lstEstadoAccion.add(new LabelValueBean(rs.getString("DESC_EDOC_TES"),rs.getString("CODI_EDOC_TED")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getEstadoAccion: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstEstadoAccion;
	}
	
	public ArrayList getEstadoAtencionManual() throws Exception {
		ArrayList lstEstadoAtencion = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT CODI_EDOC_TED, DESC_EDOC_TES " +
	    			      "  FROM ESTADO " +
	    			      " WHERE TIPO_ESTA_TES = 'M'";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            while(rs.next()){
            	lstEstadoAtencion.add(new LabelValueBean(rs.getString("DESC_EDOC_TES"),rs.getString("CODI_EDOC_TED")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getEstadoAtencionManual: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstEstadoAtencion;
	}
	
	public ArrayList getTipoDocumento() throws Exception {
		ArrayList lstTipoDocumento = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT CODI_TDOC_TTD, DESC_TDOC_TTD = SUBSTRING(DESC_TDOC_TTD,1,20) " +
	    			      "  FROM TIPO_DOCUMENTO";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            lstTipoDocumento.add(new LabelValueBean(Constants.VALOR_DEFAULT_TODOS,Constants.VALOR_DEFAULT_CERO));
            while(rs.next()){
            	lstTipoDocumento.add(new LabelValueBean(rs.getString("DESC_TDOC_TTD"),rs.getString("CODI_TDOC_TTD")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getTipoDocumento: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstTipoDocumento;
	}
	
	public ArrayList getTipoDoc_Entrada(int val) throws Exception {
		ArrayList lstTipoDoc_Entrada = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT TDM.CODI_TDOC_TTD, TD.DESC_TDOC_TTD" +
	    			      "  FROM TIPODOC_MOVIMIENTO TDM, TIPO_DOCUMENTO TD " +
	    			      " WHERE TDM.CODI_TDOC_TTD = TD.CODI_TDOC_TTD " +
	    			      "   AND CODI_TMOV_TTM = '"+Constants.TIPO_MOVIMIENTO_ENTRADA+"'";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            if(val==1)
            	lstTipoDoc_Entrada.add(new LabelValueBean(Constants.VALOR_DEFAULT_TODOS,Constants.VALOR_DEFAULT_CERO));
            while(rs.next()){
            	lstTipoDoc_Entrada.add(new LabelValueBean(rs.getString("DESC_TDOC_TTD"),rs.getString("CODI_TDOC_TTD")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getTipoDoc_Entrada: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstTipoDoc_Entrada;
	}
	
	public ArrayList getTipoDoc_Salida(int val) throws Exception {
		ArrayList lstTipoDoc_Salida = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT TDM.CODI_TDOC_TTD, TD.DESC_TDOC_TTD" +
	    			      "  FROM TIPODOC_MOVIMIENTO TDM, TIPO_DOCUMENTO TD " +
	    			      " WHERE TDM.CODI_TDOC_TTD = TD.CODI_TDOC_TTD " +
	    			      "   AND CODI_TMOV_TTM = '"+Constants.TIPO_MOVIMIENTO_SALIDA+"'";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            if(val==1)
            	lstTipoDoc_Salida.add(new LabelValueBean(Constants.VALOR_DEFAULT_TODOS,Constants.VALOR_DEFAULT_CERO));
            while(rs.next()){
            	lstTipoDoc_Salida.add(new LabelValueBean(rs.getString("DESC_TDOC_TTD"),rs.getString("CODI_TDOC_TTD")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getTipoDoc_Salida: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstTipoDoc_Salida;
	}
	
	public ArrayList getTipoDoc_Interno(int val) throws Exception {
		ArrayList lstTipoDoc_Interno = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT TDM.CODI_TDOC_TTD, TD.DESC_TDOC_TTD" +
	    			      "  FROM TIPODOC_MOVIMIENTO TDM, TIPO_DOCUMENTO TD " +
	    			      " WHERE TDM.CODI_TDOC_TTD = TD.CODI_TDOC_TTD " +
	    			      "   AND CODI_TMOV_TTM = '"+Constants.TIPO_MOVIMIENTO_INTERNO+"'";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            if(val==1)
            	lstTipoDoc_Interno.add(new LabelValueBean(Constants.VALOR_DEFAULT_TODOS,Constants.VALOR_DEFAULT_CERO));
            while(rs.next()){
            	lstTipoDoc_Interno.add(new LabelValueBean(rs.getString("DESC_TDOC_TTD"),rs.getString("CODI_TDOC_TTD")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getTipoDoc_Interno: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstTipoDoc_Interno;
	}
	
	public ArrayList getPlazo() throws Exception {
		ArrayList lstPlazo = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT CODI_PLZ_TPLZ, DESC_PLZ_TPLZ " +
	    			      "  FROM PLAZO";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            while(rs.next()){
            	lstPlazo.add(new LabelValueBean(rs.getString("DESC_PLZ_TPLZ"),rs.getString("CODI_PLZ_TPLZ")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getPlazo: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstPlazo;
	}
	
	public ArrayList getOficina() throws Exception {
		ArrayList lstOficina = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT CODI_ARE, NOMB_ARE = SUBSTRING(vNOMB_ARE,1,40), vSIG_ARE " +
	    			      "  FROM SEGURIDAD..SEG_AREA " +
	    			      " WHERE nESTA_ARE = 1" +
	    			      " ORDER BY vNOMB_ARE";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            
            lstOficina.add(new LabelValueBean(Constants.VALOR_DEFAULT_TODOS,Constants.VALOR_DEFAULT_CERO));
            while(rs.next()){
            	lstOficina.add(new LabelValueBean(rs.getString("NOMB_ARE"),rs.getString("CODI_ARE")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getOficina: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstOficina;
	}
	
	public ArrayList getOficina(Usuario usuario,String tipoBusqueda,int val) throws Exception {
		ArrayList lstOficina = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT CODI_ARE, NOMB_ARE = SUBSTRING(vNOMB_ARE,1,40), SIG_ARE = vSIG_ARE " +
	    			      "  FROM SEGURIDAD..SEG_AREA " +
	    			      " WHERE nESTA_ARE = 1" ;
	    	if(usuario.isPrivilegioPersonal() || usuario.isPrivilegioJefeUnidadOrganica() || tipoBusqueda.equals(Constants.BUSQUEDA_PERSONAL))
	    		vSQL += " AND CODI_ARE = '" + usuario.getEncargaturaPerfil().getCodArea() + "'" ;
	    	vSQL += " ORDER BY vNOMB_ARE";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            if(val==1)
            	lstOficina.add(new LabelValueBean(Constants.VALOR_DEFAULT_SELECCIONE,Constants.VALOR_DEFAULT_CERO));
            while(rs.next()){
            	lstOficina.add(new LabelValueBean(rs.getString("NOMB_ARE"),rs.getString("CODI_ARE")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getOficina: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstOficina;
	}

	public ArrayList getEmpleadoAreaOrigenUsuario(Usuario usuarioLogin) throws Exception {
		ArrayList lstObjetos = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT CODI_EMP = CONVERT(VARCHAR,A.CODI_ARE) + '#' + CONVERT(VARCHAR,E.CODI_EMP) + '#' + CONVERT(VARCHAR,B.CODI_USU) " +
	    			      "      ,NOMB_LARGO_EMP = SUBSTRING(E.NOMB_LARGO_EMP,1,45) + '-' + A.vSIG_ARE+' /'+ISNULL(B.DESC_CARG_USU,'') " +
	    			      "      ,NOMBRE = SUBSTRING(E.NOMB_LARGO_EMP,1,45) " +
	    			      "      ,A.CODI_ARE " +
	    			      "      ,E.CARG_EMP " +
	    			      "      ,B.CODI_USU " +
	    			      "      ,SIG_ARE = A.vSIG_ARE " +
	    			      "      ,B.CARG_USU " +
	    			      "  FROM SEGURIDAD..SEG_AREA A ,SEGURIDAD..EMPLEADO E ,SEGURIDAD..USUARIO B,SEGURIDAD..USUARIO_OPCION UO " +
	    			      " WHERE A.CODI_ARE = B.CODI_ARE " +
	    			      "   AND E.CODI_EMP = B.CODI_EMP " +
	    			      "   AND B.ESTA_USU = '1' " +
	    			      "   AND UO.CODI_USU = B.CODI_USU " +
	    			      "   AND UO.CODI_OPC = '8' " +
	    			      "   AND UO.ESTA_UO = '1' " +
	    			      "   AND A.CODI_ARE = "+usuarioLogin.getEncargaturaPerfil().getCodArea() +
	    			      " ORDER BY E.NOMB_LARGO_EMP";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            while(rs.next()){
            	lstObjetos.add(new Empleado(rs.getString("CODI_EMP"),rs.getString("NOMB_LARGO_EMP"),rs.getString("NOMBRE"),rs.getString("CODI_ARE"),rs.getString("CARG_EMP"),rs.getString("CODI_USU"),rs.getString("SIG_ARE"),rs.getString("CARG_USU")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getEmpleadoAreaOrigenUsuario: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstObjetos;
	}
	
	public ArrayList getEmpleadoAreaConsultas(String codArea) throws Exception {
		ArrayList lstObjetos = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT E.CODI_EMP " +
	    			      "      ,NOMB_LARGO_EMP = SUBSTRING(E.NOMB_LARGO_EMP,1,45) + '-' + A.vSIG_ARE + ' /' + ISNULL(B.DESC_CARG_USU,'') " +
	    			      "      ,NOMBRE = SUBSTRING(E.NOMB_LARGO_EMP,1,45)" +
	    			      "      ,A.CODI_ARE " +
	    			      "      ,E.CARG_EMP " +
	    			      "      ,B.CODI_USU " +
	    			      "      ,SIG_ARE = A.vSIG_ARE " +
	    			      "      ,B.CARG_USU " +
	    			      "  FROM SEGURIDAD..SEG_AREA A ,SEGURIDAD..EMPLEADO E ,SEGURIDAD..USUARIO B ,SEGURIDAD..USUARIO_OPCION UO " +
	    			      " WHERE A.CODI_ARE = B.CODI_ARE " +
	    			      "   AND E.CODI_EMP = B.CODI_EMP " +
	    			      "   AND B.ESTA_USU = '1' " +
	    			      "   AND UO.CODI_USU = B.CODI_USU " +
	    			      "   AND UO.CODI_OPC = '8' " +
	    			      "   AND UO.ESTA_UO  = '1' " +
	    			      "   AND (A.CODI_ARE = "+codArea + " OR "+codArea+" = 0) " + 
	    			      " ORDER BY E.NOMB_LARGO_EMP ";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            lstObjetos.add(new Empleado(Constants.VALOR_DEFAULT_CERO,Constants.VALOR_DEFAULT_SELECCIONE,Constants.VALOR_DEFAULT_VACIO,Constants.VALOR_DEFAULT_CERO,Constants.VALOR_DEFAULT_VACIO,Constants.VALOR_DEFAULT_CERO,Constants.VALOR_DEFAULT_VACIO,Constants.VALOR_DEFAULT_VACIO));
            while(rs.next()){
            	lstObjetos.add(new Empleado(rs.getString("CODI_EMP"),rs.getString("NOMB_LARGO_EMP"),rs.getString("NOMBRE"),rs.getString("CODI_ARE"),rs.getString("CARG_EMP"),rs.getString("CODI_USU"),rs.getString("SIG_ARE"),rs.getString("CARG_USU")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getEmpleadoAreacConsultas: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstObjetos;
	}
	
	public ArrayList getEmpleadoAreaOrigenUsuarioProy(Usuario usuarioLogin) throws Exception {
		ArrayList lstObjetos = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT CODI_EMP = CONVERT(VARCHAR,A.CODI_ARE) + '#' + CONVERT(VARCHAR,E.CODI_EMP) + '#' " +
	    			      "                + CONVERT(VARCHAR,B.CODI_USU) " +
					      "      ,NOMB_LARGO_EMP = SUBSTRING(E.NOMB_LARGO_EMP,1,45) + '-' + A.vSIG_ARE + ' /' " +
					      "                      + ISNULL(B.DESC_CARG_USU,'') " +
					      "      ,NOMBRE = SUBSTRING(E.NOMB_LARGO_EMP,1,45) " +
					      "      ,A.CODI_ARE " +
					      "      ,E.CARG_EMP " +
					      "      ,B.CODI_USU " +
					      "      ,SIG_ARE = A.vSIG_ARE  " +
					      "      ,B.CARG_USU " +
	    			      "  FROM SEGURIDAD..SEG_AREA A ,SEGURIDAD..EMPLEADO E ,SEGURIDAD..USUARIO B ,SEGURIDAD..USUARIO_OPCION UO " +
	    			      " WHERE A.CODI_ARE = B.CODI_ARE " +
	    			      "   AND E.CODI_EMP = B.CODI_EMP " +
	    			      "   AND B.ESTA_USU = '1' " +
	    			      "   AND UO.CODI_USU = B.CODI_USU " +
	    			      "   AND UO.CODI_OPC = '8' " +
	    			      "   AND UO.ESTA_UO = '1' " +
	    			      "   AND B.FLG_PROY_USU = '1' " +
	    			      " ORDER BY E.NOMB_LARGO_EMP";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            while(rs.next()){
            	lstObjetos.add(new Empleado(rs.getString("CODI_EMP"),rs.getString("NOMB_LARGO_EMP"),rs.getString("NOMBRE"),rs.getString("CODI_ARE"),rs.getString("CARG_EMP"),rs.getString("CODI_USU"),rs.getString("SIG_ARE"),rs.getString("CARG_USU")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getEmpleadoAreaOrigenUsuarioProy: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstObjetos;
	}
	
	public ArrayList getEmpleadoAreaDestinoUsuario() throws Exception {
		ArrayList lstObjetos = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL =  	"SELECT CODI_INDICE  = CONVERT(VARCHAR,A.CODI_ARE) + '#' + CONVERT(VARCHAR,E.CODI_EMP) " +
	    			        "                    + '#' + CONVERT(VARCHAR,B.CODI_USU) " +
					    	"      ,NOMB_LARGO_EMP_CARGO = SUBSTRING(E.NOMB_LARGO_EMP,1,45) + '-' + A.vSIG_ARE + ' /' " +
					    	"                            + ISNULL(B.DESC_CARG_USU,'') " +
					    	"      ,A.CODI_ARE                   " +
					    	"      ,E.CODI_EMP                   " +
					    	"      ,B.CODI_USU                   " +
					    	"      ,E.NOMB_LARGO_EMP             " +
					    	"      ,SIG_ARE = A.vSIG_ARE         " +
					    	"      ,'DESC_CARG_USU' = B.CARG_USU " +
					    	"      ,NOMB_ARE = A.vNOMB_ARE       " +
					    	"      ,E.GRAD_EMP                   " +
					    	"      ,E.INI_EMP                    " +
					    	"      ,E.EMAIL_EMP                  " +
					    	"      ,E.LOGIN_EMP                  " +
					    	"      ,B.FLG_PROY_USU               " +
					    	"  FROM SEGURIDAD..SEG_AREA A        " +
					    	"      ,SEGURIDAD..EMPLEADO E        " +
					    	"      ,SEGURIDAD..USUARIO B         " +
					    	"      ,SEGURIDAD..USUARIO_OPCION UO " +
					    	" where A.CODI_ARE  = B.CODI_ARE     " +
					    	"   AND E.CODI_EMP  = B.CODI_EMP     " +
					    	"   AND ESTA_USU    = '1'            " +
					    	"   AND UO.CODI_USU = B.CODI_USU     " +
					    	"   AND UO.CODI_OPC = '8'            " +
					    	"   AND UO.ESTA_UO  = '1'            " +
					    	" ORDER BY E.NOMB_LARGO_EMP          " ;
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            while(rs.next()){
            	lstObjetos.add(new Empleado(rs.getString("CODI_INDICE"),rs.getString("NOMB_LARGO_EMP_CARGO"),rs.getString("CODI_ARE"),rs.getString("CODI_EMP"),rs.getString("CODI_USU"),rs.getString("NOMB_LARGO_EMP"),rs.getString("SIG_ARE"),rs.getString("DESC_CARG_USU"),rs.getString("NOMB_ARE"),rs.getString("GRAD_EMP"),rs.getString("INI_EMP"),rs.getString("EMAIL_EMP"),rs.getString("LOGIN_EMP"),rs.getString("FLG_PROY_USU")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getEmpleadoAreaDestinoUsuario: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstObjetos;
	}
	
	public ArrayList getEmpleadoAreaDestinoUsuario(String codGrupo) throws Exception {
		ArrayList lstObjetos = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL =   "SELECT CODI_EMP = CONVERT(VARCHAR,A.CODI_ARE) + '#' + CONVERT(VARCHAR,E.CODI_EMP) + '#' " +
	    			        "                + CONVERT(VARCHAR,b.CODI_USU) " +
					    	"      ,NOMB_LARGO_EMP = SUBSTRING(E.NOMB_LARGO_EMP,1,45) + '-' + A.vSIG_ARE+' /'+ISNULL(b.DESC_CARG_USU,'')   " +
					    	"      ,NOMBRE = SUBSTRING(E.NOMB_LARGO_EMP,1,45) 															   " +
					    	"      ,A.CODI_ARE                                                                                             " +
					    	"      ,E.CARG_EMP                                                                                             " +
							"      ,b.CODI_USU 																							   " +
							"      ,SIG_ARE = A.vSIG_ARE  																				   " +
							"      ,b.CARG_USU 																							   " +
					    	"  FROM SEGURIDAD..SEG_AREA A,                                                                                 " +
					    	"       SEGURIDAD..EMPLEADO E,                                                                                 " +
					    	"       SEGURIDAD..USUARIO b,                                                                                  " +
					    	"       SEGURIDAD..GRUPO_USUARIOS GU                                                                           " +
					    	" where a.codi_are = b.codi_are                                                                                " +
					    	"   AND E.CODI_EMP = B.CODI_EMP                                                                                " +
					    	"   AND ESTA_USU='1'                                                                                           " +
					    	"   AND b.CODI_USU = GU.CODI_USU                                                                               " +
					    	"   AND GU.CODI_GRUPO = " +codGrupo+
					    	" ORDER BY E.NOMB_LARGO_EMP                                                                                    ";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            while(rs.next()){
            	lstObjetos.add(new Empleado(rs.getString("CODI_EMP"),rs.getString("NOMB_LARGO_EMP"),rs.getString("NOMBRE"),rs.getString("CODI_ARE"),rs.getString("CARG_EMP"),rs.getString("CODI_USU"),rs.getString("SIG_ARE"),rs.getString("CARG_USU")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getEmpleadoAreaDestinoUsuario: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstObjetos;
	}

	public ArrayList getEstadoRegistro() throws Exception {
		ArrayList lstObjetos = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT CODI_TSTA, DESC_TSTA " +
	    			      "  FROM ESTADOREG " +
	    			      " WHERE CODI_TSTA IN ('A','I')";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            while(rs.next()){
            	lstObjetos.add(new LabelValueBean(rs.getString("DESC_TSTA"),rs.getString("CODI_TSTA")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getEstadoRegistro: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstObjetos;
	}
	
	public ArrayList getAcciones() throws Exception {
		ArrayList lstObjetos = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT CODI_ACC_TACC, DESC_ACC_TACC " +
	    			      "  FROM ACCIONES " +
	    			      " WHERE ESTA_ACC_TACC = 'A'" +
	    			      " ORDER BY PRIO_ACC_TACC";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            while(rs.next()){
            	lstObjetos.add(new LabelValueBean(rs.getString("DESC_ACC_TACC"),rs.getString("CODI_ACC_TACC")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getAcciones: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstObjetos;
	}
	
	public ArrayList getAccionesDesc() throws Exception {
		ArrayList lstObjetos = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT CODI_ACC_TACC, DESC_ACC_TACC " + // = SUBSTRING(DESC_ACC_TACC,1,15) " +
	    			      "  FROM ACCIONES " +
	    			      " ORDER BY CODI_ACC_TACC";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            while(rs.next()){
            	lstObjetos.add(new LabelValueBean(rs.getString("DESC_ACC_TACC"),rs.getString("CODI_ACC_TACC")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getAccionesDesc: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstObjetos;
	}
	
	public ArrayList getTipoCliente() throws Exception {
		ArrayList lstObjetos = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT CODI_TIPCL_TTC, DESC_TIPCL_TTC " +
	    			      "  FROM TIPO_CLIENTE";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            lstObjetos.add(new LabelValueBean(Constants.VALOR_DEFAULT_SELECCIONE,Constants.VALOR_DEFAULT_CERO)); 
            while(rs.next()){
            	lstObjetos.add(new LabelValueBean(rs.getString("DESC_TIPCL_TTC"),rs.getString("CODI_TIPCL_TTC")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getTipoCliente: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstObjetos;
	}

	public ArrayList getTipoModalidadEnvio() throws Exception {
		ArrayList lstObjetos = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT CODI_MOD_TTME, DESC_MOD_TTME " +
	    			      "  FROM TIPO_MOD_ENV";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            lstObjetos.add(new LabelValueBean(Constants.VALOR_DEFAULT_TODOS,Constants.VALOR_DEFAULT_CERO));
            while(rs.next()){
            	lstObjetos.add(new LabelValueBean(rs.getString("DESC_MOD_TTME"),rs.getString("CODI_MOD_TTME")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getTipoModalidadEnvio: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstObjetos;
	}
	
	public ArrayList getAmbito() throws Exception {
		ArrayList lstObjetos = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT CODI_AMB, DESC_AMB " +
	    			      "  FROM AMBITO";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            lstObjetos.add(new LabelValueBean(Constants.VALOR_DEFAULT_SELECCIONE,Constants.VALOR_DEFAULT_CERO));
            while(rs.next()){
            	lstObjetos.add(new LabelValueBean(rs.getString("DESC_AMB"),rs.getString("CODI_AMB")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getAmbito: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstObjetos;
	}
	
	public ArrayList getPais() throws Exception {
		ArrayList lstObjetos = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT CODI_PAIS, DESC_PAIS " +
	    			      "  FROM PAIS";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            lstObjetos.add(new Pais(Constants.VALOR_DEFAULT_CERO,Constants.VALOR_DEFAULT_SELECCIONE));
            while(rs.next()){
            	lstObjetos.add(new Pais(rs.getString("CODI_PAIS"),rs.getString("DESC_PAIS")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getPais: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstObjetos;
	}
	
	public ArrayList getDepartamento(String codPais) throws Exception {
		ArrayList lstObjetos = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT CODI_DEP, DESC_DEP ,CODI_PAIS " +
	    			      "  FROM DEPARTAMENTO " +
	    			      " WHERE (CODI_PAIS = " + codPais + " OR "+codPais+" = 0)";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            lstObjetos.add(new Departamento(Constants.VALOR_DEFAULT_CERO,Constants.VALOR_DEFAULT_SELECCIONE,Constants.VALOR_DEFAULT_CERO));
            while(rs.next()){
            	lstObjetos.add(new Departamento(rs.getString("CODI_DEP"),rs.getString("DESC_DEP"),rs.getString("CODI_PAIS")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getDepartamento: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstObjetos;
	}
	
	public ArrayList getProvincia(String codDpto) throws Exception {
		ArrayList lstObjetos = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT CODI_UBIG_PROV, DESC_PROV, CODI_DEP, CODI_PROV " +
	    			      "  FROM PROVINCIA " + 
	    			      " WHERE (CODI_DEP = " + codDpto + " OR "+codDpto+" = 0)";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            lstObjetos.add(new Provincia(Constants.VALOR_DEFAULT_CERO,Constants.VALOR_DEFAULT_SELECCIONE,Constants.VALOR_DEFAULT_CERO,Constants.VALOR_DEFAULT_CERO));
            while(rs.next()){
            	lstObjetos.add(new Provincia(rs.getString("CODI_UBIG_PROV"),rs.getString("DESC_PROV"),rs.getString("CODI_DEP"),rs.getString("CODI_PROV")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getProvincia: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstObjetos;
	}
	
	public ArrayList getDistrito(String codProv) throws Exception {
		ArrayList lstObjetos = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT CODI_UBIG_DIST, DESC_DIST, CODI_UBIG_PROV, CODI_DIST " +
	    			      "  FROM DISTRITO " +
	    			      " WHERE (CODI_UBIG_PROV = " + codProv + " OR "+codProv+" = 0)" ;
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            lstObjetos.add(new Distrito(Constants.VALOR_DEFAULT_CERO,Constants.VALOR_DEFAULT_SELECCIONE,Constants.VALOR_DEFAULT_CERO,Constants.VALOR_DEFAULT_CERO));
            while(rs.next()){
            	lstObjetos.add(new Distrito(rs.getString("CODI_UBIG_DIST"),rs.getString("DESC_DIST"),rs.getString("CODI_UBIG_PROV"),rs.getString("CODI_DIST")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getDistrito: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstObjetos;
	}
	
	public ArrayList getRubro() throws Exception {
		ArrayList lstObjetos = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT CODI_TIPO, DESC_TIPO " +
	    			      "  FROM TIPO_CATEGORIA";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            lstObjetos.add(new LabelValueBean(Constants.VALOR_DEFAULT_SELECCIONE,Constants.VALOR_DEFAULT_CERO));
            while(rs.next()){
            	lstObjetos.add(new LabelValueBean(rs.getString("DESC_TIPO"),rs.getString("CODI_TIPO")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getRubro: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstObjetos;
	}
	
	public ArrayList getTipoPersona() throws Exception {
		ArrayList lstObjetos = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT CODI_PER, DESC_PER " +
	    			      "  FROM TIPO_PERSONA";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            lstObjetos.add(new LabelValueBean(Constants.VALOR_DEFAULT_SELECCIONE,Constants.VALOR_DEFAULT_CERO));
            while(rs.next()){
            	lstObjetos.add(new LabelValueBean(rs.getString("DESC_PER"),rs.getString("CODI_PER")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getTipoPersona: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstObjetos;
	}
	
	public ArrayList getCourier() throws Exception {
		ArrayList lstObjetos = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT CODI_COUR_TCR, DESC_COUR_TCR " +
	    			      "  FROM COURIER";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            lstObjetos.add(new LabelValueBean(Constants.VALOR_DEFAULT_TODOS,Constants.VALOR_DEFAULT_CERO));
            while(rs.next()){
            	lstObjetos.add(new LabelValueBean(rs.getString("DESC_COUR_TCR"),rs.getString("CODI_COUR_TCR")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getCourier: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstObjetos;
	}

	public ArrayList getEPS() throws Exception {
		ArrayList lstObjetos = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT CODI_EPS, DESC_EPS " +
	    			      "  FROM EPS " +
	    			      " WHERE ESTA_EPS= 'A'";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            lstObjetos.add(new LabelValueBean(Constants.VALOR_DEFAULT_SELECCIONE,Constants.VALOR_DEFAULT_CERO));
            while(rs.next()){
            	lstObjetos.add(new LabelValueBean(rs.getString("DESC_EPS"),rs.getString("CODI_EPS")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getEPS: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstObjetos;
	}

	public ArrayList getGrupo() throws Exception {
		ArrayList lstObjetos = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT CODI_GRUPO, DESC_GRUPO " +
	    			      "  FROM SEGURIDAD..GRUPO";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            while(rs.next()){
            	lstObjetos.add(new LabelValueBean(rs.getString("DESC_GRUPO"),rs.getString("CODI_GRUPO")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getGrupo: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstObjetos;
	}

	public ArrayList getDocIdentidad() throws Exception {
		ArrayList lstObjetos = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = "SELECT CODI_DOC_IDEN, DESC_DOC_IDEN " +
	    			      "  FROM DOC_IDENTIDAD";
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            lstObjetos.add(new LabelValueBean(Constants.VALOR_DEFAULT_SELECCIONE,Constants.VALOR_DEFAULT_CERO));
            while(rs.next()){
            	lstObjetos.add(new LabelValueBean(rs.getString("DESC_DOC_IDEN"),rs.getString("CODI_DOC_IDEN")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getDocIdentidad: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstObjetos;
	}

	public ArrayList getClasificacionDocumentos() throws Exception {
		ArrayList lstObjetos = new ArrayList();
		Connection conn = null;
		PreparedStatement pre = null;
		CallableStatement call = null;
		ResultSet rs = null;
	    try{
	    	conn = cn.connect().getConnection();
	    	String vSQL = 	"SELECT fCODI_CLASIF_CLA " +
					    	"      ,vDESC_CLASIF_CLA " +
					    	"      ,cEST_CLASIF_CLA = ISNULL(cEST_CLASIF_CLA,'A') " +
					    	"      ,nORD_CLASIF_CLA  " +
					    	"      ,fCODI_PLZ_TPLZ   " +
					    	"      ,nDIAS_PLAZO_CLA  " +
					    	"  FROM STD_CLASIFICACION_DOCU " +
					    	" WHERE cEST_CLASIF_CLA = 'A'  " +
					    	" ORDER BY nORD_CLASIF_CLA     " ;
	    	pre = conn.prepareStatement(vSQL);
            rs = pre.executeQuery();
            while(rs.next()){
            	lstObjetos.add(new ClasificacionDocumentos(rs.getString("fCODI_CLASIF_CLA"),rs.getString("vDESC_CLASIF_CLA"),rs.getString("cEST_CLASIF_CLA"),rs.getString("nORD_CLASIF_CLA"),rs.getString("fCODI_PLZ_TPLZ"),rs.getString("nDIAS_PLAZO_CLA")));
            }
        }
        catch(Exception e) {
        	logger.error("[STD]: Error en getClasificacionDocumentos: " + e.getMessage());
            e.printStackTrace();
        }
        finally{   
        	cn.destroy(conn,null,rs,call,pre);
	    }
        return lstObjetos;
	}
}
